package com.test.springai.config;

import java.util.List;
import org.springframework.ai.document.Document;
import org.springframework.ai.embedding.EmbeddingModel;
import org.springframework.ai.vectorstore.SimpleVectorStore;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * Created with IntelliJ IDEA.
 *
 * @description: 向量存储配置类，负责初始化向量存储并加载初始文档数据。
 * @author: liuziyang
 * @since: 9/3/25 10:55 AM
 * @modifiedBy:
 * @version: 1.0
 */
@Configuration
public class VectorStoreConfig {
  @Bean
  public SimpleVectorStore simpleVectorStore(EmbeddingModel embeddingModel) {
    final SimpleVectorStore store = SimpleVectorStore.builder(embeddingModel).build();
    List<Document> documents =
        List.of(
            new Document(
                """
                    2025年公司内部管理文档：报销政策：
                    报销描述：只限于内部员工使用，外包员工不参照此办法。
                    说明：
                    1. 报销科目：交通费、食宿费、差旅补贴、其他费用。
                    2. 报销要求：出差申请单、酒店住宿发票、餐厅发票、飞机电子出行单、火车发票等，要求均为电子票。
                    3. 报销标准：交通费用标准飞机经济舱、高铁一等座、四星级酒店。
                    """),
            new Document(
                """
                    公司差旅制度：
                    差旅定义：员工因公外出办理业务。
                    费用范围：机票、高铁票、住宿费、餐饮费、室内交通费。
                    审批流程：需提前填写差旅申请单，部门经理和财务部审批。
                    住宿标准：普通员工四星级酒店，总监级别可住五星级酒店。
                    """),
            new Document(
                """
                    员工福利手册：休假政策
                    年假：入职满一年可以享受5天年假，每增加一年增加1天，上限15天。
                    病假：需提供医生证明。
                    婚假：3天。
                """));
    store.add(documents);
    return store;
  }
}
